﻿using Google.Cloud.Dialogflow.V2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bot.Domain.DialogFlow
{
    public class agent
    {
        public string description { get; set; }
        public string language { get; set; }
        public bool disableInteractionLogs { get; set; }

        public GoogleAssistant googleAssistant { get; set; }
        public string defaultTimezone { get; set; }
        public Webhook webhook { get; set; }
        public bool isPrivate { get; set; }
        public string customClassifierMode { get; set; }
        public decimal mlMinConfidence { get; set; }
        public string[] supportedLanguages { get; set; }
        public string onePlatformApiVersion { get; set; }
    }

    public class GoogleAssistant
    {
        public bool googleAssistantCompatible { get; set; }
        public string project { get; set; }
        public bool welcomeIntentSignInRequired { get; set; }
        public Google.Cloud.Dialogflow.V2.Intent[] startIntents { get; set; }
        public Google.Cloud.Dialogflow.V2.Intent[] systemIntents { get; set; }
        public Google.Cloud.Dialogflow.V2.Intent[] endIntentIds { get; set; }
        public OAuthLinking oAuthLinking { get; set; }
        public string voiceType { get; set; }
        public string[] capabilities { get; set; }
        public string protocolVersion { get; set; }
        public bool isDeviceAgent { get; set; }
    }
    public class OAuthLinking
    {
        public bool required { get; set; }
        public string grantType { get; set; }
    }
    public class Webhook
    {
        public string url { get; set; }
        public string username { get; set; }
        public Dictionary<string, string> headers { get; set; }
        public bool available { get; set; }
        public bool useForDomains { get; set; }
        public bool cloudFunctionsEnabled { get; set; }
        public bool cloudFunctionsInitialized { get; set; }
    }
}
